/*
 * Copyright (C) 2011 Young,Fey <fey.young@gmail.com>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

package com.youngfey.wordnet

import org.junit.*
import static org.junit.Assert.*
import edu.smu.tspell.wordnet.*
import static edu.smu.tspell.wordnet.SynsetType.*

/**
 * 
 * @author Young,Fey <fey.young@gmail.com>
 */
class WordNetTest {
    
    @BeforeClass
    static void setUpClass() throws Exception {

    }

    @AfterClass
    static void tearDownClass() throws Exception {

    }

    @Before
    void setUp() {

    }

    @After
    void tearDown() {

    }

    @Test
    void testLoad() {
        def home = System.getProperty('user.home')
        def dir = new File(home, '.wordnet')
        def dict = new File(dir, 'dict')
        if(dict.exists()) {
            dict.eachFile { it.delete() }
            dict.delete()
        }
        def db = WordNet.getInstance()
    }

    @Test
    void testGetBaseFormCandidates() {
        def db = WordNet.getInstance()
        def cs = db.getBaseFormCandidates('lies')
        assertTrue cs.contains('ly')
        assertTrue cs.contains('lie')
        assertTrue db.getBaseFormCandidates('lie').contains('lie')
        assertTrue db.getBaseFormCandidates('teeth').contains('tooth')

    }

    @Test
    void testGetLemmas() {
        def db = WordNet.getInstance()
        assertFalse db.getLemmas('lies').containsKey('consist')
        assertTrue db.getLemmas('lies', true).containsKey('consist')

        assertTrue db.getLemmas('Windows').containsKey('Windows')
    }
}

